/*	This file is part of AstroAttack.
*
*	AstroAttack is free software; you can redistribute it and/or modify
*	it under the terms of the GNU General Public License as published by
*	the Free Software Foundation; either version 2 of the License, or
*	(at your option) any later version.
*	
*	AstroAttack is distributed in the hope that it will be useful,
*	but WITHOUT ANY WARRANTY; without even the implied warranty of
*	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*	GNU General Public License for more details.
*	
*	You should have received a copy of the GNU General Public License
*	along with AstroAttack; if not, write to the Free Software
*	Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*	
*	$Id: SettingsManager.java 64 2007-01-06 03:30:23Z xdracox $
*/

/**	The AstroAttack package contains all the classes that belong to the
*	AstroAttack program.
*/
package AstroAttack;

public class SettingsManager extends INIParser
{
	private static SettingsManager m_ref;
	
	public static SettingsManager getManager()
	{
		if ( m_ref == null )
			m_ref = new SettingsManager();
		return m_ref;
	}
	
	private SettingsManager()
	{
		super("data/settings.ini");
		load();
	}
	
	public void setAll(Settings s)
	{
		set("general", "world", s.general_world);
		set("display", "framerate", "" + s.display_framerate);
		set("display", "fullscreen", "" + s.display_fullscreen);
		set("display", "height", "" + s.display_height);
		set("display", "width", "" + s.display_width);
	}
	
	public Settings getAll()
	{
		Settings s = new Settings();
		
		s.general_world = get("general", "world");
		s.display_framerate = Integer.parseInt(get("display", "framerate"));
		s.display_fullscreen = Boolean.parseBoolean(get("display", "fullscreen"));
		s.display_height = Integer.parseInt(get("display", "height"));
		s.display_width = Integer.parseInt(get("display", "width"));
		
		return s;
	}
}
